// 1.引入express
const express = require('express');

// 2.创建应用对象
const app = express();

// 3.创建路由器规则
// request是请求报文的封装
// response是响应报文的封装
app.get('/server',(request,response)=>{
    // 设置响应头 设置允许跨域
    response.setHeader('Access-Control-Allow-Origin','*');
    // 设置响应体
    response.send('hello world get');
});

app.all('/server',(request,response)=>{
    // 设置响应头 设置允许跨域
    response.setHeader('Access-Control-Allow-Origin','*');
    // 响应头，以接收前端自定义的请求头 传输方式post改为all
    response.setHeader('Access-Control-Allow-Headers','*');
    // 设置响应体
    response.send('hello world post');
});

app.get('/json-server',(request,response)=>{
    // 设置响应头 设置允许跨域
    response.setHeader('Access-Control-Allow-Origin','*');
    // 响应头，以接收前端自定义的请求头 传输方式post改为all
    response.setHeader('Access-Control-Allow-Headers','*');
    // 响应一个数据
    const date = {
        name:'mannoname'
    }
    // 把数据对象转化为字符串
    let str = JSON.stringify(date);
    // 设置响应体
    response.send(str);
});

// 针对Ie缓存
app.get('/ie',(request,response)=>{
    // 设置响应头 设置允许跨域
    response.setHeader('Access-Control-Allow-Origin','*');
    // 设置响应体
    response.send('hello world IE');
});

// 延时响应
app.get('/delay',(request,response)=>{
    // 设置响应头 设置允许跨域
    response.setHeader('Access-Control-Allow-Origin','*');
    setTimeout(()=>{
        // 设置响应体
        response.send('hello world 延时响应');
    },3000)
});

// jQuery服务
app.get('/jquery-server',(request,response)=>{
    // 设置响应头 设置允许跨域
    response.setHeader('Access-Control-Allow-Origin','*');
    // 设置响应体
    response.send('hello world jQuery get');
});

app.all('/jquery-server',(request,response)=>{
    // 设置响应头 设置允许跨域
    response.setHeader('Access-Control-Allow-Origin','*');
    response.setHeader('Access-Control-Allow-Headers','*');
    const data={name:'mannoname'};
    // 设置响应体
    response.send(JSON.stringify(data));
});

// axios服务
app.all('/axios-server',(request,response)=>{
    // 设置响应头 设置允许跨域
    response.setHeader('Access-Control-Allow-Origin','*');
    response.setHeader('Access-Control-Allow-Headers','*');
    // 设置响应体
    response.send('hello world axios get');
});

// fetch服务
app.all('/fetch-server',(request,response)=>{
    // 设置响应头 设置允许跨域
    response.setHeader('Access-Control-Allow-Origin','*');
    response.setHeader('Access-Control-Allow-Headers','*');
    // 设置响应体
    response.send('hello world axios get');
});

// 4.监听端口启动服务
app.listen(8080,()=>{
    console.log('服务器已启动');
});

// 打开终端并且输入node 脚本名称.js启动服务器
// 网页地址栏输入lpcalhost:8080